home *** CD-ROM | disk | FTP | other *** search
- 5 REM PLANETS
- 10 DIM SP(10)
- 15 M=40 :E=380 :L=27:C=184
- 17 MR=30:ER=90:LR=25:CR=35
- 20 DIM P1(M),Q1(M),P2(E),Q2(E),P3(L),Q3(L),P4(C),Q4(C)
- 30 PRINT"[147]CALCULATING ORBITS PLEASE WAIT!"
- 100 REM MACHINE CODE ROUTINE TO SERVICE SPRITES
- 110 REM IT UPDATES THEIR POSITION EVERY INTERRUPT
- 120 DATA165,47,133,251,165,48,133,252,160,0,177,251,201,83,208,8,200,177,251
- 130 DATA201,80,240,38,136,200,200,177,251,133,253,200,157,251,133,254,24,165,251
- 140 DATA101,253,133,251,165,252,101,254,133,252,197,50,208,212,165,251
- 150 DATA197,49,208,206,76,49,234
- 160 DATA152,24,105,6,168,162,0,200,200,24,177,251,41,1,240,1,56,102,255,200
- 170 DATA177,251 ,157,0,208,200,177,251,157,1,208,232,232,200,224,16,208,225
- 180 DATA165,255,141, 16,208
- 182 DATA162,0,200,200,177,251,240,29,169,0,157,4,212,177,251,157,4,212,169,0
- 184 DATA145,251,200,177,251,157,1,212,200,177,251,157,0,212,76,208,3
- 186 DATA200,200,200,138,24,105,7,170,224,21,208,209,76,49,234
- 190 REM INSERT WEDEE (CODE AT 988)
- 200 DATA120,169,64,141,20,3,169,3,141,21,3,88,96
- 210 FORJ=832 TO 1000
- 220 READA:POKEJ,A :NEXTJ
- 230 SYS(988):A=2^31:B=2^8
- 240 REM SET UP SPRITE DEFINITIONS
- 250 FOR J=0TO8*64-1
- 260 READ X:POKE 58368+J,X
- 270 NEXT J
- 290 V=208*256
- 300 POKE V+32,0:POKE V+33,0 :REM SET SCREEN BLACK
- 310 FOR J=0 TO 7:POKE58360+J,144+J:NEXT J:REM SET SPRITE POINTERS
- 320 FOR J=57344 TO 58343:POKE J, 0:NEXTJ
- 330 POKE V+21,255
- 340 POKE V+24,136
- 350 POKE V+24,(PEEK(V+24) AND 15)OR 128
- 360 POKE 56578,PEEK(56578)OR 3
- 370 POKE 56576,PEEK(56576) AND 252
- 400 POKE V+42,7:POKE V+43,7:POKE V+44,7:POKE V+45,7 :REM SET SUN YELLOW
- 420 SP(3)=A+160*B+130
- 430 SP(4)=A+184*B+130
- 440 SP(5)=A+160*B+149
- 450 SP(6)=A+184*B+149
- 460 PRINT"[147]"
- 470 REM CALCULATE ORBITS
- 480 S=2*(null)/M :REM FIRST MERCURY
- 490 FOR J= 1 TO M
- 500 P1(J)=INT(1.2*MR*SIN(S*J)+184):Q1(J)=INT(MR*COS(S*J)+149)
- 510 NEXT J
- 520 S=2*(null)/E: REM NEXT EARTH
- 530 FOR J=1 TO E
- 540 P2(J)=INT(1.2*ER*SIN(S*J)+184):Q2(J)=INT(ER*COS(S*J)+149)
- 550 NEXT J
- 560 S=2*(null)/L: REM NEXT THE MOON
- 570 FOR J=1 TO L
- 580 P3(J)=INT(1.2*LR*SIN(S*J)):Q3(J)=INT(LR*COS(S*J))
- 590 NEXT J
- 600 REM NEXT COMET
- 610 S=2*(null)/C:SQ = SIN(0.8):CT=COS(0.8)
- 620 FOR J=1 TO C:REM FIRST CIRCULAR COORDINATES
- 630 P4(J)=2.5*CR*SIN(S*J):Q4(J)=1.2*CR*COS(S*J)
- 640 XD=220+INT(P4(J)*SQ+Q4(J)*CT)
- 650 YD=110+INT(Q4(J)*CT-P4(J)*SQ)
- 660 P4(J)=XD:Q4(J)=YD
- 670 NEXT J
- 705 JM=1:EM=1:LM=1:CM=1
- 710 FOR Q=1 TO 100000
- 720 SP(0)=A+B*P1(JM)+Q1(JM)
- 730 SP(7)=A+B*P4(CM)+Q4(CM)
- 740 SP(2)=A+B*P2(EM)+Q2(EM)
- 750 SP(1)=A+B*(P2(EM)+P3(LM))+(Q2(EM)+Q3(LM))
- 760 EM=EM+1:IFEM>ETHEN EM=1
- 770 LM=LM+1:IF LM>L THEN LM=1
- 780 JM=JM+1:IF JM>M THEN JM=1
- 790 CM=CM+1:IF CM>CTHEN CM=1
- 800 NEXT Q
- 1400 REM SPRITE DEFINITIONS
- 1410 REM SMALL PLANET
- 1420 DATA16,0,0,124,0,0,254,0,0,254,0,0,124,0,0,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- 1430 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- 1450 REM MIDDLE-SIZED PLANET
- 1460 DATA0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- 1470 DATA0,124,0,1,255,0,3,255,128,3,255,128,7,255,192,7,255,192,3,255,128
- 1480 DATA1,255,0,0,124,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
- 1500 REM BIG PLANET
- 1510 DATA0,0,0,0,24,0,1,255,128,7,255,224,31,255,248,63,255,252
- 1520 DATA127,255,254,127,255,254,255,255,255,255,255,255,255,255,255,255,255,255
- 1530 DATA127,255,254,127,255,254,63,255,252,31,255,248,7,255,224,1,255,128
- 1540 DATA0,24,0,0,0,0,0,0,0,0
- 1550 REM SUN (1ST QUADRANT)
- 1560 DATA0,0,3,0,0,127,0,3,255,0,31,255,0,127,255,1,255,255,3,255,255,7,255,255
- 1570 DATA15,255,255,31,255,255,31,255,255,63,255,255,63,255,255,127,255,255
- 1580 DATA127,255,255,255,255,255,255,255,255,255,255,255,255,255,255
- 1590 DATA0,0,0,0,0,0,0
- 1600 REM SUN (2ND QUADRANT)
- 1610 DATA192,0,0,254,0,0,255,192,0,255,248,0,255,254,0,255,255,128,255,255,192
- 1620 DATA255,255,224,255,255,240,255,255,248,255,255,248,255,255,252,255,255,252
- 1630 DATA255,255,254,255,255,254,255,255,255,255,255,255,255,255,255,255,255,255
- 1640 DATA0,0,0,0,0,0,0
- 1650 REM SUN (3RD QUADRANT)
- 1660 DATA255,255,255,255,255,255,255,255,255,255,255,255
- 1670 DATA127,255,255,127,255,255,63,255,255,63,255,255,31,255,255,31,255,255
- 1680 DATA15,255,255,7,255,255,3,255,255,1,255,255,0,127,255,0,31,255,0,3,255
- 1690 DATA0,0,127,0,0,3,0,0,0,0,0,0,0
- 1700 REM SUN (4TH QUADRANT)
- 1710 DATA255,255,255,255,255,255,255,255,255,255,255,255
- 1720 DATA255,255,254,255,255,254,255,255,252,255,255,252,255,255,248,255,255,248
- 1730 DATA255,255,240,255,255,224,255,255,192,255,255,128,255,254,0,255,248,0
- 1740 DATA255,192,0,254,0,0,192,0,0,0,0,0,0,0,0,0
- 1750 REM COMET
- 1760 DATA0,0,136,0,0,32,0,2,4,0,0,32,0,1,0,0,8,65,0,4,8,0,0,64,0,24,8
- 1770 DATA0,64,128,0,168,0,1,2,0,5,32,0,9,80,0,18,128,0
- 1780 DATA57,64,0,122,0,0,252,0,0,252,0,0,248,0,0,112,0,0,0
-